package com.honey.mybatis.generator.inversion;

import com.honey.compilation.java.Field;
import com.honey.compilation.java.Method;
import com.honey.core.types.FullyQualifiedJavaType;
import com.honey.mybatis.generator.dependent.DependentModel;

/**
 * 注入模型接口
 * @author Administrator
 *
 */
public interface Inversion {
	
	static final FullyQualifiedJavaType SQL_SESSION_DAO_SUPPORT = new FullyQualifiedJavaType("org.mybatis.spring.support.SqlSessionDaoSupport");
	
	static final FullyQualifiedJavaType SQL_SESSION = new FullyQualifiedJavaType("org.apache.ibatis.session.SqlSession");
	
//	/**
//	 * 获取sqlSession的方法
//	 * @param variable 变量名称
//	 * @return
//	 */
//	public String call(String  variable);
	
	/**
	 * 获取sqlSession的方法
	 * @param variable 变量名称
	 * @return
	 */
	public String call(DependentModel dependentModel ,String  variable);
	
	/**
	 * 类的继承类型(用于extend模型)
	 * @return
	 */
	public FullyQualifiedJavaType extend();
	
	/**
	 * 类的属性(用于inversion模型)
	 * @return
	 */
	public Field[] inversionFiled( String fieldname );
	
	/**
	 * 类的方法(用于inversion模型)
	 * @param fieldname
	 * @return
	 */
	public Method[] inversionMethod( String fieldname );
}
